
<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <meta charset="utf-8" />
    <title>biodeg_properties &#8212; Texas A&amp;M Oil spill / Outfall Calculator 2.1.0 documentation</title>
    <link rel="stylesheet" href="../_static/alabaster.css" type="text/css" />
    <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
    <script id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script>
    <script src="../_static/jquery.js"></script>
    <script src="../_static/underscore.js"></script>
    <script src="../_static/doctools.js"></script>
    <script src="../_static/language_data.js"></script>
    <link rel="index" title="Index" href="../genindex.html" />
    <link rel="search" title="Search" href="../search.html" />
   
  <link rel="stylesheet" href="../_static/custom.css" type="text/css" />
  
  
  <meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" />

  </head><body>
  

    <div class="document">
      <div class="documentwrapper">
        <div class="bodywrapper">
          

          <div class="body" role="main">
            
  <h1>Source code for biodeg_properties</h1><div class="highlight"><pre>
<span></span><span class="sd">&quot;&quot;&quot;</span>
<span class="sd">Biodegradation Properties Script</span>
<span class="sd">================================</span>

<span class="sd">Create a dictionary of biodegradation properties</span>

<span class="sd">This script creates a dictionary of the properties of several hydrocarbons and</span>
<span class="sd">chemicals of environmental interest in a global dictionary for use by other</span>
<span class="sd">programs that need to know biodegradation properties.</span>

<span class="sd">Parameters</span>
<span class="sd">----------</span>
<span class="sd">The biodegradation data are stored in ``./data/BioData.csv``. Header rows are </span>
<span class="sd">denoted by `%, the last row of pure text is taken as the variable names and</span>
<span class="sd">the last row with `()` is taken as the units.  The columns should include</span>
<span class="sd">a key name (e.g., `methane`), the first-order decay constant, and the </span>
<span class="sd">biodegrdation lag time.  For unknown parameter values, use -9999.</span>

<span class="sd">For the data provided by the model, the data sources and more details are</span>
<span class="sd">documented in the file ``../docs/BioData_ReadMe.txt``.</span>

<span class="sd">This module can read in any number of columns of chemical data, including</span>
<span class="sd">parameters not listed below. Units will be converted to standard SI units,</span>
<span class="sd">and the conversion function will operate on 1/d and d. The returned variables</span>
<span class="sd">`units` will contain the final set of units for the database. To use the</span>
<span class="sd">TAMOC suite of models, all parameters listed below in the `data` dictionary</span>
<span class="sd">must be provided with the variable names listed.</span>

<span class="sd">Returns</span>
<span class="sd">-------</span>
<span class="sd">data : dict</span>
<span class="sd">    a nested dictionary containing the chemical name as the first key </span>
<span class="sd">    and the following list of secondary keys matched with the numerical</span>
<span class="sd">    value of each variable:</span>
<span class="sd">       </span>
<span class="sd">       k_bio : first-order biodegradation rate constant (1/s)</span>
<span class="sd">       t_bio : biodegradation lag time (s)</span>

<span class="sd">units : dict</span>
<span class="sd">    dictionary with the same keys as the variable names listed above </span>
<span class="sd">    (e.g., k_bio, t_bio, etc.) linked to a string containing the units of </span>
<span class="sd">    each variable.</span>

<span class="sd">Notes</span>
<span class="sd">-----</span>
<span class="sd">To use the properties database distributed by TAMOC, simply import this file</span>
<span class="sd">in Python: the results will be returned in `biodeg_properties.data`. To</span>
<span class="sd">import a user-defined database of properties, use the function ``load_data``</span>
<span class="sd">provided in the `chemical_properties` module. The ``TAMOC`` suite of models</span>
<span class="sd">will pull data from both the default and any user-specified database, giving</span>
<span class="sd">first priority to parameter keys found in the user-specified database.</span>

<span class="sd">See also</span>
<span class="sd">--------</span>
<span class="sd">`dbm` : Uses these dictionaries to create chemical mixture objects.</span>

<span class="sd">Examples</span>
<span class="sd">--------</span>
<span class="sd">&gt;&gt;&gt; from tamoc import biodeg_properties as biodeg</span>
<span class="sd">&gt;&gt;&gt; biodeg.data[&#39;methane&#39;][&#39;k_bio&#39;]</span>
<span class="sd">x.xxxxx</span>
<span class="sd">&gt;&gt;&gt; biodeg.units[&#39;k_bio&#39;]</span>
<span class="sd">&#39;(1/s)&#39;</span>

<span class="sd">&quot;&quot;&quot;</span>
<span class="c1"># S. Socolofsky, January 2012, Texas A&amp;M University &lt;socolofs@tamu.edu&gt;.</span>

<span class="kn">from</span> <span class="nn">__future__</span> <span class="kn">import</span> <span class="p">(</span><span class="n">absolute_import</span><span class="p">,</span> <span class="n">division</span><span class="p">,</span> <span class="n">print_function</span><span class="p">)</span>

<span class="kn">from</span> <span class="nn">tamoc</span> <span class="kn">import</span> <span class="n">chemical_properties</span>

<span class="kn">import</span> <span class="nn">numpy</span> <span class="k">as</span> <span class="nn">np</span>
<span class="kn">import</span> <span class="nn">os</span>


<div class="viewcode-block" id="load_data"><a class="viewcode-back" href="../autodoc/chem/biodeg_properties.load_data.html#biodeg_properties.load_data">[docs]</a><span class="k">def</span> <span class="nf">load_data</span><span class="p">(</span><span class="n">fname</span><span class="p">):</span>
    <span class="sd">&quot;&quot;&quot;</span>
<span class="sd">    Load a chemical properties file into memory</span>
<span class="sd">    </span>
<span class="sd">    Reads in a chemical properties file, creates a dictionary of the columns</span>
<span class="sd">    in the file, and performs some units conversions as necessary to have the</span>
<span class="sd">    data in SI mks units.  </span>
<span class="sd">    </span>
<span class="sd">    Parameters</span>
<span class="sd">    ----------</span>
<span class="sd">    fname : str</span>
<span class="sd">        file name (with relative path as necessary) where the chemical </span>
<span class="sd">        property data is stored</span>
<span class="sd">    </span>
<span class="sd">    Returns</span>
<span class="sd">    -------</span>
<span class="sd">    data : dict</span>
<span class="sd">        dictionary of the properties for each column in the data file</span>
<span class="sd">    units : dict</span>
<span class="sd">        corresponding dictionary of units for each property in data</span>
<span class="sd">    </span>
<span class="sd">    Notes</span>
<span class="sd">    -----</span>
<span class="sd">    This function is used by the `dbm` module to load in the default chemical</span>
<span class="sd">    data in ./tamoc/data/chemdata.csv.  This function can also be called by</span>
<span class="sd">    the user to read in a user-specified file of chemical data present in any</span>
<span class="sd">    storage location.</span>
<span class="sd">    </span>
<span class="sd">    &quot;&quot;&quot;</span>
    <span class="c1"># Set up counters to keep track of what has been and has not been read</span>
    <span class="n">readnames</span> <span class="o">=</span> <span class="o">-</span><span class="mi">1</span>
    <span class="n">data</span> <span class="o">=</span> <span class="p">{}</span>
    
    <span class="c1"># Read in and parse the data from the chemistry data file.</span>
    <span class="k">with</span> <span class="nb">open</span><span class="p">(</span><span class="n">fname</span><span class="p">)</span> <span class="k">as</span> <span class="n">datfile</span><span class="p">:</span>
        <span class="k">for</span> <span class="n">line</span> <span class="ow">in</span> <span class="n">datfile</span><span class="p">:</span>
            
            <span class="n">entries</span> <span class="o">=</span> <span class="n">line</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s1">&#39;,&#39;</span><span class="p">)</span>
            
            <span class="c1"># Remove blank RHS column (Excel randomly includes extra columns)</span>
            <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">entries</span><span class="p">[</span><span class="nb">len</span><span class="p">(</span><span class="n">entries</span><span class="p">)</span><span class="o">-</span><span class="mi">1</span><span class="p">])</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span>
                <span class="n">entries</span> <span class="o">=</span> <span class="n">entries</span><span class="p">[</span><span class="mi">0</span><span class="p">:</span><span class="nb">len</span><span class="p">(</span><span class="n">entries</span><span class="p">)</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span>
            
            <span class="c1"># Identify and store the data</span>
            <span class="k">if</span> <span class="n">line</span><span class="o">.</span><span class="n">find</span><span class="p">(</span><span class="s1">&#39;%&#39;</span><span class="p">)</span> <span class="o">&gt;=</span> <span class="mi">0</span><span class="p">:</span>
                <span class="c1"># This is a header line</span>
                
                <span class="k">if</span> <span class="n">line</span><span class="o">.</span><span class="n">find</span><span class="p">(</span><span class="s1">&#39;(&#39;</span><span class="p">)</span> <span class="o">&gt;=</span> <span class="mi">0</span><span class="p">:</span>
                    <span class="c1"># This line contains the units</span>
                    <span class="n">header_units</span> <span class="o">=</span> <span class="n">line</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s1">&#39;,&#39;</span><span class="p">)</span>
                
                <span class="k">elif</span> <span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">entries</span><span class="p">[</span><span class="mi">1</span><span class="p">])</span> <span class="o">&gt;</span> <span class="mi">0</span><span class="p">)</span> <span class="ow">and</span><span class="p">(</span><span class="n">readnames</span> <span class="o">&lt;</span> <span class="mi">0</span><span class="p">):</span>
                    <span class="c1"># This line contains the variable names</span>
                    <span class="n">header_keys</span> <span class="o">=</span> <span class="n">line</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s1">&#39;,&#39;</span><span class="p">)</span>
                    <span class="n">readnames</span> <span class="o">=</span> <span class="mi">1</span>
                
            <span class="k">else</span><span class="p">:</span>
                <span class="c1"># This is a data line</span>
                <span class="n">data</span><span class="p">[</span><span class="n">entries</span><span class="p">[</span><span class="mi">0</span><span class="p">]]</span> <span class="o">=</span> <span class="p">{}</span>
                <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="nb">len</span><span class="p">(</span><span class="n">entries</span><span class="p">)):</span>
                    <span class="n">data</span><span class="p">[</span><span class="n">entries</span><span class="p">[</span><span class="mi">0</span><span class="p">]][</span><span class="n">header_keys</span><span class="p">[</span><span class="n">i</span><span class="p">]]</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">float64</span><span class="p">(</span><span class="n">entries</span><span class="p">[</span><span class="n">i</span><span class="p">])</span>
            
    <span class="c1"># Add the units to two different dictionaries</span>
    <span class="n">read_units</span> <span class="o">=</span> <span class="p">{}</span>
    <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">header_units</span><span class="p">)</span> <span class="o">-</span> <span class="mi">1</span><span class="p">):</span>
        <span class="n">read_units</span><span class="p">[</span><span class="n">header_keys</span><span class="p">[</span><span class="n">i</span><span class="p">]]</span> <span class="o">=</span> <span class="n">header_units</span><span class="p">[</span><span class="n">i</span><span class="p">]</span>
    <span class="n">units</span> <span class="o">=</span> <span class="p">{}</span>
    <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">header_units</span><span class="p">)</span> <span class="o">-</span> <span class="mi">1</span><span class="p">):</span>
        <span class="n">units</span><span class="p">[</span><span class="n">header_keys</span><span class="p">[</span><span class="n">i</span><span class="p">]]</span> <span class="o">=</span> <span class="n">header_units</span><span class="p">[</span><span class="n">i</span><span class="p">]</span>
                      
    <span class="c1"># Convert to SI units.  If you add a new unit to the file ChemData.csv, </span>
    <span class="c1"># then you should include a check for it here.</span>
    <span class="k">for</span> <span class="n">chemical</span> <span class="ow">in</span> <span class="n">data</span><span class="p">:</span>
        <span class="k">for</span> <span class="n">variable</span> <span class="ow">in</span> <span class="n">read_units</span><span class="p">:</span>
            <span class="k">if</span> <span class="n">read_units</span><span class="p">[</span><span class="n">variable</span><span class="p">]</span><span class="o">.</span><span class="n">find</span><span class="p">(</span><span class="s1">&#39;g/mol&#39;</span><span class="p">)</span> <span class="o">&gt;=</span> <span class="mi">0</span><span class="p">:</span>
                <span class="c1"># Convert to kg/mol</span>
                <span class="n">data</span><span class="p">[</span><span class="n">chemical</span><span class="p">][</span><span class="n">variable</span><span class="p">]</span> <span class="o">=</span> <span class="n">data</span><span class="p">[</span><span class="n">chemical</span><span class="p">][</span><span class="n">variable</span><span class="p">]</span> <span class="o">/</span> <span class="mf">1000.</span>
                <span class="n">units</span><span class="p">[</span><span class="n">variable</span><span class="p">]</span> <span class="o">=</span> <span class="s1">&#39;(kg/mol)&#39;</span>
            
            <span class="k">if</span> <span class="n">read_units</span><span class="p">[</span><span class="n">variable</span><span class="p">]</span><span class="o">.</span><span class="n">find</span><span class="p">(</span><span class="s1">&#39;psia&#39;</span><span class="p">)</span> <span class="o">&gt;=</span> <span class="mi">0</span><span class="p">:</span>
                <span class="c1"># Convert to Pa</span>
                <span class="n">data</span><span class="p">[</span><span class="n">chemical</span><span class="p">][</span><span class="n">variable</span><span class="p">]</span> <span class="o">=</span> <span class="n">data</span><span class="p">[</span><span class="n">chemical</span><span class="p">][</span><span class="n">variable</span><span class="p">]</span> <span class="o">*</span> <span class="mf">6894.76</span>
                <span class="n">units</span><span class="p">[</span><span class="n">variable</span><span class="p">]</span> <span class="o">=</span> <span class="s1">&#39;(Pa)&#39;</span>
            
            <span class="k">if</span> <span class="n">read_units</span><span class="p">[</span><span class="n">variable</span><span class="p">]</span><span class="o">.</span><span class="n">find</span><span class="p">(</span><span class="s1">&#39;F&#39;</span><span class="p">)</span> <span class="o">&gt;=</span> <span class="mi">0</span><span class="p">:</span>
                <span class="c1"># Convert to K</span>
                <span class="n">data</span><span class="p">[</span><span class="n">chemical</span><span class="p">][</span><span class="n">variable</span><span class="p">]</span> <span class="o">=</span> <span class="p">(</span><span class="n">data</span><span class="p">[</span><span class="n">chemical</span><span class="p">][</span><span class="n">variable</span><span class="p">]</span> <span class="o">-</span> <span class="mf">32.</span><span class="p">)</span> <span class="o">*</span> \
                                           <span class="mf">5.</span> <span class="o">/</span> <span class="mf">9.</span> <span class="o">+</span> <span class="mf">273.15</span>
                <span class="n">units</span><span class="p">[</span><span class="n">variable</span><span class="p">]</span> <span class="o">=</span> <span class="s1">&#39;(K)&#39;</span>
            
            <span class="k">if</span> <span class="n">read_units</span><span class="p">[</span><span class="n">variable</span><span class="p">]</span><span class="o">.</span><span class="n">find</span><span class="p">(</span><span class="s1">&#39;mol/dm^3 atm&#39;</span><span class="p">)</span> <span class="o">&gt;=</span> <span class="mi">0</span><span class="p">:</span>
                <span class="c1"># Convert to kg/(m^3 Pa)</span>
                <span class="n">data</span><span class="p">[</span><span class="n">chemical</span><span class="p">][</span><span class="n">variable</span><span class="p">]</span> <span class="o">=</span> <span class="p">(</span><span class="n">data</span><span class="p">[</span><span class="n">chemical</span><span class="p">][</span><span class="n">variable</span><span class="p">]</span> <span class="o">*</span> \
                                           <span class="mf">1000.</span> <span class="o">/</span> <span class="mf">101325.</span> <span class="o">*</span> \
                                           <span class="n">data</span><span class="p">[</span><span class="n">chemical</span><span class="p">][</span><span class="s1">&#39;M&#39;</span><span class="p">])</span>
                <span class="n">units</span><span class="p">[</span><span class="n">variable</span><span class="p">]</span> <span class="o">=</span> <span class="s1">&#39;(kg/(m^3 Pa))&#39;</span>
            
            <span class="k">if</span> <span class="n">read_units</span><span class="p">[</span><span class="n">variable</span><span class="p">]</span><span class="o">.</span><span class="n">find</span><span class="p">(</span><span class="s1">&#39;mm^2/s&#39;</span><span class="p">)</span> <span class="o">&gt;=</span> <span class="mi">0</span><span class="p">:</span>
                <span class="c1"># Convert to m^3/s</span>
                <span class="n">data</span><span class="p">[</span><span class="n">chemical</span><span class="p">][</span><span class="n">variable</span><span class="p">]</span> <span class="o">=</span> <span class="n">data</span><span class="p">[</span><span class="n">chemical</span><span class="p">][</span><span class="n">variable</span><span class="p">]</span> <span class="o">/</span> <span class="mf">1000.</span><span class="o">**</span><span class="mi">2</span>
                <span class="n">units</span><span class="p">[</span><span class="n">variable</span><span class="p">]</span> <span class="o">=</span> <span class="s1">&#39;(m^3/s)&#39;</span>
            
            <span class="k">if</span> <span class="n">read_units</span><span class="p">[</span><span class="n">variable</span><span class="p">]</span><span class="o">.</span><span class="n">find</span><span class="p">(</span><span class="s1">&#39;cal/mol&#39;</span><span class="p">)</span> <span class="o">&gt;=</span> <span class="mi">0</span><span class="p">:</span>
                <span class="c1"># Convert to J/mol</span>
                <span class="n">data</span><span class="p">[</span><span class="n">chemical</span><span class="p">][</span><span class="n">variable</span><span class="p">]</span> <span class="o">=</span> <span class="n">data</span><span class="p">[</span><span class="n">chemical</span><span class="p">][</span><span class="n">variable</span><span class="p">]</span> <span class="o">/</span> <span class="mf">0.238846</span>
                <span class="n">units</span><span class="p">[</span><span class="n">variable</span><span class="p">]</span> <span class="o">=</span> <span class="s1">&#39;(J/mol)&#39;</span>
            
            <span class="k">if</span> <span class="n">read_units</span><span class="p">[</span><span class="n">variable</span><span class="p">]</span><span class="o">.</span><span class="n">find</span><span class="p">(</span><span class="s1">&#39;L/mol&#39;</span><span class="p">)</span> <span class="o">&gt;=</span> <span class="mi">0</span><span class="p">:</span>
                <span class="c1"># Convert to m^3/mol</span>
                <span class="n">data</span><span class="p">[</span><span class="n">chemical</span><span class="p">][</span><span class="n">variable</span><span class="p">]</span> <span class="o">=</span> <span class="n">data</span><span class="p">[</span><span class="n">chemical</span><span class="p">][</span><span class="n">variable</span><span class="p">]</span> <span class="o">/</span> <span class="mf">1000.</span>
                <span class="n">units</span><span class="p">[</span><span class="n">variable</span><span class="p">]</span> <span class="o">=</span> <span class="s1">&#39;(m^3/mol)&#39;</span>
            
            <span class="k">if</span> <span class="n">read_units</span><span class="p">[</span><span class="n">variable</span><span class="p">]</span><span class="o">.</span><span class="n">find</span><span class="p">(</span><span class="s1">&#39;1/d&#39;</span><span class="p">)</span> <span class="o">&gt;=</span> <span class="mi">0</span><span class="p">:</span>
                <span class="c1"># Convert to 1/s</span>
                <span class="n">data</span><span class="p">[</span><span class="n">chemica</span><span class="p">][</span><span class="n">variable</span><span class="p">]</span> <span class="o">=</span> <span class="n">data</span><span class="p">[</span><span class="n">chemical</span><span class="p">][</span><span class="n">variable</span><span class="p">]</span> <span class="o">/</span> <span class="mf">86400.</span>
                <span class="n">units</span><span class="p">[</span><span class="n">variable</span><span class="p">]</span> <span class="o">=</span> <span class="s1">&#39;(1/s)&#39;</span>
            
            <span class="k">if</span> <span class="n">read_units</span><span class="p">[</span><span class="n">variable</span><span class="p">]</span><span class="o">.</span><span class="n">find</span><span class="p">(</span><span class="s1">&#39;d&#39;</span><span class="p">)</span> <span class="o">&gt;=</span> <span class="mf">0.</span><span class="p">:</span>
                <span class="c1"># Convert to s</span>
                <span class="n">data</span><span class="p">[</span><span class="n">chemical</span><span class="p">][</span><span class="n">variable</span><span class="p">]</span> <span class="o">=</span> <span class="n">data</span><span class="p">[</span><span class="n">chemical</span><span class="p">][</span><span class="n">variable</span><span class="p">]</span> <span class="o">*</span> <span class="mf">86400.</span>
                <span class="n">units</span><span class="p">[</span><span class="n">variable</span><span class="p">]</span> <span class="o">=</span> <span class="s1">&#39;(s)&#39;</span>
            
    <span class="k">return</span> <span class="p">(</span><span class="n">data</span><span class="p">,</span> <span class="n">units</span><span class="p">)</span></div>


<span class="k">if</span> <span class="vm">__name__</span> <span class="o">==</span> <span class="s1">&#39;tamoc.chemical_properties&#39;</span><span class="p">:</span>
    <span class="c1"># Get the relative path to the ./tamoc/data directory</span>
    <span class="n">__location__</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">realpath</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">getcwd</span><span class="p">(),</span> 
                                    <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">dirname</span><span class="p">(</span><span class="vm">__file__</span><span class="p">),</span> <span class="s1">&#39;data&#39;</span><span class="p">))</span>
    
    <span class="c1"># Create the full relative path to the default data in ChemData.csv</span>
    <span class="n">fname</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">__location__</span><span class="p">,</span><span class="s1">&#39;ChemData.csv&#39;</span><span class="p">)</span>
    
    <span class="c1"># Load in the default data and their units</span>
    <span class="n">data</span><span class="p">,</span> <span class="n">units</span> <span class="o">=</span> <span class="n">load_data</span><span class="p">(</span><span class="n">fname</span><span class="p">)</span>


</pre></div>

          </div>
          
        </div>
      </div>
      <div class="sphinxsidebar" role="navigation" aria-label="main navigation">
        <div class="sphinxsidebarwrapper">
<h1 class="logo"><a href="../index.html">Texas A&M Oil spill / Outfall Calculator</a></h1>








<h3>Navigation</h3>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../user_manual.html">TAMOC User Manual</a></li>
<li class="toctree-l1"><a class="reference internal" href="../unit_tests.html">Unit Tests</a></li>
<li class="toctree-l1"><a class="reference internal" href="../glossary.html">Glossary</a></li>
</ul>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../bugs.html">Reporting Bugs</a></li>
<li class="toctree-l1"><a class="reference internal" href="../readme.html">Read Me File</a></li>
<li class="toctree-l1"><a class="reference internal" href="../release.html">Release Notes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../license.html">License</a></li>
</ul>

<div class="relations">
<h3>Related Topics</h3>
<ul>
  <li><a href="../index.html">Documentation overview</a><ul>
  <li><a href="index.html">Module code</a><ul>
  </ul></li>
  </ul></li>
</ul>
</div>
<div id="searchbox" style="display: none" role="search">
  <h3 id="searchlabel">Quick search</h3>
    <div class="searchformwrapper">
    <form class="search" action="../search.html" method="get">
      <input type="text" name="q" aria-labelledby="searchlabel" />
      <input type="submit" value="Go" />
    </form>
    </div>
</div>
<script>$('#searchbox').show(0);</script>








        </div>
      </div>
      <div class="clearer"></div>
    </div>
    <div class="footer">
      &copy;2020, Scott A. Socolofsky.
      
      |
      Powered by <a href="http://sphinx-doc.org/">Sphinx 2.4.4</a>
      &amp; <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a>
      
    </div>

    

    
  </body>
</html>